1. Field of the Invention
The present invention generally relates to memory traffic management and, more specifically, to memory bandwidth reallocation for isochronous traffic.
2. Description of the Related Art
In a computing system, many different clients compete for access to the memory subsystem. Therefore, certain types of data access requests are processed with a high priority to account for the competing access. Further, in some cases, servicing data access requests as quickly as possible allows for the computing system to save power by turning off the memory subsystem. Therefore, the data access requests processed with a high priority are also given high memory bandwidth usage to account for the “race to sleep” performance conditions. Such race to sleep conditions exist even if no lower priority data access requests exists.
Typically, isochronous data requests, such as display requests in a graphics subsystem, are served by the memory subsystem with a higher priority than non-isochronous data requests, such as video data requests. Consequently, in systems having a large amount of isochronous data request traffic, the memory bandwidth allocated to the non-isochronous data requests is minimal and non-isochronous data requests are processed with high latency. Further, during race to sleep condition, the isochronous data requests can saturate all available bandwidth for a long time. With no available bandwidth for non-isochronous requests, such requests suffer very high latency.
Accordingly, what is needed in the art is a system and method for allocating memory bandwidth to different types of data requests in a fair manner while also servicing processing priorities and performance conditions.